Shape এবং Drawing ম্যানিপুলেশন

Java Technologies - অ্যাপাচি পিওআই (পাওয়ারপয়েন্ট)
137
137

Apache POI একটি শক্তিশালী Java লাইব্রেরি, যা ব্যবহারকারীদের Microsoft PowerPoint (.pptx) ফাইল তৈরি এবং সম্পাদনা করতে সক্ষম করে। এর মাধ্যমে আপনি স্লাইডে বিভিন্ন Shape (আকৃতি) এবং Drawing (অঙ্কন) ম্যানিপুলেশন করতে পারেন, যেমন: বিভিন্ন আকৃতি তৈরি, রঙ পরিবর্তন, লাইন ও ফিগার ড্র করা, ইত্যাদি।

এই গাইডে, আমরা দেখব কিভাবে Apache POI ব্যবহার করে PowerPoint স্লাইডে Shapes এবং Drawings ম্যানিপুলেট করা যায়।


Apache POI দিয়ে Shapes এবং Drawing ম্যানিপুলেশন

Apache POI এর XSLF API ব্যবহার করে আপনি PowerPoint স্লাইডে বিভিন্ন শেপ এবং ড্রয়িং এলিমেন্ট যোগ করতে, সেগুলি কাস্টমাইজ এবং ম্যানিপুলেট করতে পারেন।

1. Basic Shapes যোগ করা

আপনি XSLFShape ক্লাস ব্যবহার করে সহজ শেপ যেমন আয়তক্ষেত্র, বৃত্ত, ত্রিভুজ, লাইন, ইত্যাদি তৈরি করতে পারেন।

উদাহরণ: PowerPoint স্লাইডে আয়তক্ষেত্র এবং বৃত্ত যোগ করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import org.apache.poi.xslf.usermodel.XSLFShape;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

public class ShapesExample {
    public static void main(String[] args) throws IOException {
        // নতুন PowerPoint স্লাইড শো তৈরি করুন
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি করুন
        XSLFSlide slide = ppt.createSlide();

        // আয়তক্ষেত্র যোগ করুন
        XSLFAutoShape rectangle = slide.createAutoShape();
        rectangle.setShapeType(ShapeType.RECTANGLE);
        rectangle.setAnchor(new java.awt.Rectangle(50, 50, 300, 150));
        rectangle.setFillColor(Color.RED);

        // বৃত্ত যোগ করুন
        XSLFAutoShape ellipse = slide.createAutoShape();
        ellipse.setShapeType(ShapeType.ELLIPSE);
        ellipse.setAnchor(new java.awt.Rectangle(200, 200, 100, 100));
        ellipse.setFillColor(Color.BLUE);

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("shapes_example.pptx")) {
            ppt.write(out);
        }

        System.out.println("Shapes Slide তৈরি হয়েছে!");
    }
}

এখানে, আমরা দুটি শেপ—আয়তক্ষেত্র এবং বৃত্ত তৈরি করেছি এবং তাদের রঙ সেট করেছি।


2. লেখা (Text) এবং শেপের মধ্যে ম্যানিপুলেশন

Apache POI তে আপনি shapes এর মধ্যে টেক্সট যোগ করতে পারেন এবং তাদের কন্টেন্ট ম্যানিপুলেট করতে পারবেন।

উদাহরণ: আয়তক্ষেত্রের মধ্যে টেক্সট যোগ করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import java.io.FileOutputStream;
import java.io.IOException;

public class ShapeTextExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন PowerPoint স্লাইড শো তৈরি করুন
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি করুন
        XSLFSlide slide = ppt.createSlide();

        // আয়তক্ষেত্র যোগ করুন
        XSLFAutoShape shape = slide.createAutoShape();
        shape.setShapeType(ShapeType.RECTANGLE);
        shape.setAnchor(new java.awt.Rectangle(50, 50, 300, 150));
        shape.setFillColor(java.awt.Color.YELLOW);
        shape.setText("Hello, Apache POI!");

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("shape_text_example.pptx")) {
            ppt.write(out);
        }

        System.out.println("Shape with Text তৈরি হয়েছে!");
    }
}

এখানে, একটি আয়তক্ষেত্র শেপের মধ্যে টেক্সট "Hello, Apache POI!" যোগ করা হয়েছে।


3. লাইন ড্রয়িং এবং আকার পরিবর্তন

আপনি XSLFLine ব্যবহার করে PowerPoint স্লাইডে লাইন অঙ্কন করতে পারেন এবং তার আকার পরিবর্তন করতে পারেন।

উদাহরণ: PowerPoint স্লাইডে লাইন অঙ্কন করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFLine;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

public class LineDrawingExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন PowerPoint স্লাইড শো তৈরি করুন
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি করুন
        XSLFSlide slide = ppt.createSlide();

        // লাইন ড্র করা
        XSLFLine line = slide.createLine();
        line.setAnchor(new java.awt.Rectangle(100, 100, 500, 50)); // X, Y, W, H
        line.setLineColor(Color.BLACK);

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("line_drawing_example.pptx")) {
            ppt.write(out);
        }

        System.out.println("Line Drawing Slide তৈরি হয়েছে!");
    }
}

এখানে, আমরা একটি লাইন ড্র করেছি এবং তার রঙ কালো (Black) সেট করেছি।


4. পাথ বা কাস্টম শেপ তৈরি করা

Apache POI দিয়ে আপনি কাস্টম শেপ বা পাথও তৈরি করতে পারেন যা সাধারণ শেপের বাইরে।

উদাহরণ: কাস্টম পাথ তৈরি করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFShape;
import java.awt.geom.GeneralPath;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

public class CustomShapeExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন PowerPoint স্লাইড শো তৈরি করুন
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি করুন
        XSLFSlide slide = ppt.createSlide();

        // কাস্টম পাথ তৈরি করা
        GeneralPath path = new GeneralPath();
        path.moveTo(100, 100);
        path.lineTo(200, 100);
        path.lineTo(150, 150);
        path.closePath();

        // কাস্টম শেপ যোগ করা
        XSLFShape shape = slide.createAutoShape();
        shape.setFillColor(Color.GREEN);
        shape.setPath(path);

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("custom_shape_example.pptx")) {
            ppt.write(out);
        }

        System.out.println("Custom Shape তৈরি হয়েছে!");
    }
}

এখানে, আমরা একটি কাস্টম পাথ তৈরি করেছি যা একটি ত্রিভুজ আকৃতির শেপ তৈরি করেছে।


সারাংশ

Apache POI এর মাধ্যমে আপনি PowerPoint স্লাইডে বিভিন্ন Shapes এবং Drawings ম্যানিপুলেট করতে পারেন। এর মাধ্যমে আপনি স্লাইডে শেপ, টেক্সট, ছবি, লাইন এবং কাস্টম শেপ তৈরি এবং কাস্টমাইজ করতে পারবেন। XSLF API-র মাধ্যমে আপনি বিভিন্ন প্রকার শেপের রঙ, আকার, পজিশন ইত্যাদি পরিবর্তন করতে পারেন এবং বিভিন্ন গ্রাফিক্যাল উপাদান যুক্ত করতে পারেন।

এই প্রক্রিয়া আপনাকে PowerPoint ফাইলগুলি খুব সহজেই কাস্টমাইজ এবং প্রক্রিয়া করতে সহায়ক হতে পারে।

common.content_added_by

Shape যোগ করা (Rectangle, Oval, Line ইত্যাদি)

117
117

Apache POI ব্যবহার করে আপনি PowerPoint ফাইলে বিভিন্ন ধরনের শেপ (যেমন Rectangle, Oval, Line) যোগ করতে পারেন। এর জন্য XSLFShape এবং XSLFPictureShape ক্লাস ব্যবহার করা হয়। এই ক্লাসগুলো ব্যবহার করে আপনি স্লাইডে শেপ তৈরি এবং কাস্টমাইজ করতে পারবেন।

এখানে Rectangle, Oval এবং Line যোগ করার উদাহরণ দেয়া হলো।


PowerPoint ফাইলে Shape যোগ করার উদাহরণ

১. Rectangle (আয়তক্ষেত্র) যোগ করা:

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import org.apache.poi.sl.usermodel.AutoShape;

import java.io.FileOutputStream;
import java.io.IOException;

public class AddRectangleShapeExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন PowerPoint ফাইল তৈরি করা
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি করা
        XSLFSlide slide = ppt.createSlide();

        // আয়তক্ষেত্র (Rectangle) তৈরি করা
        XSLFAutoShape rect = slide.createAutoShape(AutoShape.ShapeType.RECTANGLE);
        rect.setAnchor(new java.awt.Rectangle(100, 100, 400, 200));  // (x, y, width, height)
        rect.setLineColor(java.awt.Color.BLACK);
        rect.setFillColor(java.awt.Color.CYAN);

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("addRectangle.pptx")) {
            ppt.write(out);
        }

        System.out.println("PowerPoint file with Rectangle shape created successfully!");
    }
}

কোড ব্যাখ্যা:

  • createAutoShape(AutoShape.ShapeType.RECTANGLE): একটি আয়তক্ষেত্র (Rectangle) শেপ তৈরি করা হচ্ছে।
  • rect.setAnchor(new java.awt.Rectangle(100, 100, 400, 200)): আয়তক্ষেত্রটির অবস্থান এবং আকার নির্ধারণ করা হচ্ছে (x, y, width, height)।
  • setLineColor() এবং setFillColor(): আয়তক্ষেত্রটির সীমার (border) এবং ভেতরের রঙ নির্ধারণ করা হচ্ছে।

২. Oval (ডিম্বাকৃতির শেপ) যোগ করা:

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import org.apache.poi.sl.usermodel.AutoShape;

import java.io.FileOutputStream;
import java.io.IOException;

public class AddOvalShapeExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন PowerPoint ফাইল তৈরি করা
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি করা
        XSLFSlide slide = ppt.createSlide();

        // ডিম্বাকৃতির শেপ (Oval) তৈরি করা
        XSLFAutoShape oval = slide.createAutoShape(AutoShape.ShapeType.ELLIPSE);
        oval.setAnchor(new java.awt.Rectangle(150, 150, 300, 200));  // (x, y, width, height)
        oval.setLineColor(java.awt.Color.RED);
        oval.setFillColor(java.awt.Color.YELLOW);

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("addOval.pptx")) {
            ppt.write(out);
        }

        System.out.println("PowerPoint file with Oval shape created successfully!");
    }
}

কোড ব্যাখ্যা:

  • createAutoShape(AutoShape.ShapeType.ELLIPSE): একটি ডিম্বাকৃতির শেপ (Oval) তৈরি করা হচ্ছে।
  • oval.setAnchor(new java.awt.Rectangle(150, 150, 300, 200)): ডিম্বাকৃতির শেপের অবস্থান এবং আকার নির্ধারণ করা হচ্ছে।
  • setLineColor() এবং setFillColor(): ডিম্বাকৃতির শেপের সীমা এবং ভেতরের রঙ নির্ধারণ করা হচ্ছে।

৩. Line (রেখা) যোগ করা:

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFLine;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddLineShapeExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন PowerPoint ফাইল তৈরি করা
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি করা
        XSLFSlide slide = ppt.createSlide();

        // রেখা (Line) তৈরি করা
        XSLFLine line = slide.createLine();
        line.setAnchor(new java.awt.Rectangle(100, 100, 500, 100)); // রেখা শুরু থেকে শেষ পয়েন্ট
        line.setLineColor(java.awt.Color.GREEN);
        line.setLineWidth(3.0);  // রেখার প্রস্থ

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("addLine.pptx")) {
            ppt.write(out);
        }

        System.out.println("PowerPoint file with Line shape created successfully!");
    }
}

কোড ব্যাখ্যা:

  • createLine(): এটি একটি রেখা (Line) তৈরি করে।
  • setAnchor(new java.awt.Rectangle(100, 100, 500, 100)): রেখার শুরু এবং শেষ পয়েন্ট নির্ধারণ করা হচ্ছে।
  • setLineColor() এবং setLineWidth(): রেখার রঙ এবং প্রস্থ নির্ধারণ করা হচ্ছে।

PowerPoint ফাইলে অন্যান্য শেপ যোগ করা

Apache POI-তে আরও অনেক ধরনের শেপ যোগ করা সম্ভব, যেমন:

  • Polygon (পলিগন)
  • Arc (আর্ক)
  • Freeform (ফ্রি ফর্ম)

এই শেপগুলির জন্যও XSLFAutoShape এবং অন্যান্য শেপ ক্লাস ব্যবহার করা যেতে পারে।


সারাংশ

Apache POI লাইব্রেরি ব্যবহার করে আপনি PowerPoint ফাইলে বিভিন্ন ধরনের শেপ (যেমন Rectangle, Oval, Line) যোগ করতে পারেন। XSLFAutoShape এবং XSLFLine ক্লাস ব্যবহার করে শেপের আকার, রঙ এবং অন্যান্য বৈশিষ্ট্য কাস্টমাইজ করা যায়। এতে করে আপনি সহজেই PowerPoint প্রেজেন্টেশনে গ্রাফিক্যাল উপাদান যুক্ত করতে পারবেন।

common.content_added_by

Shape Position এবং Size কনফিগার করা

132
132

অ্যাপাচি পিওআই (Apache POI) একটি ওপেন সোর্স লাইব্রেরি যা Java প্ল্যাটফর্মে Microsoft PowerPoint ফাইল ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। এটি PowerPoint (PPTX) ফাইল তৈরি, সম্পাদনা, এবং কনটেন্ট ম্যানিপুলেশন করার জন্য খুবই কার্যকরী।

একটি PowerPoint স্লাইডে Shape (যেমন TextBox, Rectangle, Circle, Image) যোগ করার সময়, আপনি সেগুলির position (অবস্থান) এবং size (আকার) কনফিগার করতে পারবেন। Apache POI এর মাধ্যমে আপনি সহজেই শেপের অবস্থান ও আকার সেট করতে পারেন।

এখানে PowerPoint স্লাইডে শেপের অবস্থান (position) এবং আকার (size) কিভাবে কনফিগার করবেন তা দেখানো হচ্ছে।


PowerPoint স্লাইডে Shape Position এবং Size কনফিগার করার উদাহরণ

ধাপ ১: Apache POI লাইব্রেরি যোগ করা

আপনার pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন।

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version> <!-- সর্বশেষ সংস্করণ -->
</dependency>

ধাপ ২: Shape Position এবং Size কনফিগার করা

এখানে একটি উদাহরণ দেওয়া হলো, যেখানে TextBox শেপ PowerPoint স্লাইডে যোগ করা হয়েছে এবং তার position (অবস্থান) এবং size (আকার) কনফিগার করা হয়েছে।

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
import java.awt.Rectangle;
import java.io.FileOutputStream;
import java.io.IOException;

public class PowerPointShapePositionSizeExample {
    public static void main(String[] args) throws IOException {
        // নতুন PowerPoint ফাইল তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // একটি TextBox শেপ তৈরি করা
        XSLFTextShape textBox = slide.createTextBox();
        textBox.setText("Hello, Apache POI!");

        // Shape এর position (অবস্থান) এবং size (আকার) সেট করা
        // Rectangle(x, y, width, height) - যেখানে x এবং y পজিশন, width এবং height আকার নির্ধারণ করে
        textBox.setAnchor(new Rectangle(100, 100, 400, 50));  // অবস্থান ও আকার

        // PowerPoint ফাইল সংরক্ষণ
        try (FileOutputStream out = new FileOutputStream("example_shape_position_size.pptx")) {
            ppt.write(out);
        }

        System.out.println("PowerPoint ফাইল তৈরি করা হয়েছে এবং Shape এর অবস্থান এবং আকার সেট করা হয়েছে।");
    }
}

কোড ব্যাখ্যা:

  1. XMLSlideShow ppt = new XMLSlideShow();
    • একটি নতুন PowerPoint ফাইল তৈরি করা হচ্ছে।
  2. XSLFSlide slide = ppt.createSlide();
    • একটি নতুন স্লাইড তৈরি করা হচ্ছে।
  3. XSLFTextShape textBox = slide.createTextBox();
    • স্লাইডে একটি TextBox শেপ তৈরি করা হচ্ছে।
  4. textBox.setText("Hello, Apache POI!");
    • TextBox এ টেক্সট যোগ করা হচ্ছে।
  5. textBox.setAnchor(new Rectangle(100, 100, 400, 50));
    • setAnchor() মেথডের মাধ্যমে শেপের অবস্থান এবং আকার নির্ধারণ করা হচ্ছে। এখানে Rectangle(100, 100, 400, 50) মানে:
      • x=100: শেপের অনুভূমিক অবস্থান (100 পিক্সেল)
      • y=100: শেপের উল্লম্ব অবস্থান (100 পিক্সেল)
      • width=400: শেপের প্রস্থ (400 পিক্সেল)
      • height=50: শেপের উচ্চতা (50 পিক্সেল)
  6. ppt.write(out);
    • এই লাইনটি example_shape_position_size.pptx নামে PowerPoint ফাইলটি সংরক্ষণ করবে।

অন্যান্য ধরনের Shapes এর Position এবং Size কনফিগার করা

আপনি TextBox ছাড়াও অন্যান্য ধরনের Shapes যোগ করতে পারেন, যেমন Rectangle, Oval, Picture, Lines ইত্যাদি। এই সমস্ত শেপের জন্যও position এবং size কনফিগার করা সম্ভব।

উদাহরণ: একটি Rectangle Shape তৈরি করা এবং তার অবস্থান ও আকার সেট করা

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.sl.usermodel.ShapeType;
import org.apache.poi.xslf.usermodel.XSLFAutoShape;
import java.awt.Rectangle;
import java.io.FileOutputStream;
import java.io.IOException;

public class PowerPointRectangleShapeExample {
    public static void main(String[] args) throws IOException {
        // নতুন PowerPoint ফাইল তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // একটি Rectangle Shape তৈরি করা
        XSLFAutoShape shape = slide.createAutoShape(ShapeType.RECTANGLE);
        shape.setAnchor(new Rectangle(150, 150, 300, 200));  // position এবং size

        // PowerPoint ফাইল সংরক্ষণ
        try (FileOutputStream out = new FileOutputStream("example_rectangle_shape.pptx")) {
            ppt.write(out);
        }

        System.out.println("PowerPoint ফাইল তৈরি করা হয়েছে এবং Rectangle Shape এর অবস্থান এবং আকার সেট করা হয়েছে।");
    }
}

এখানে, XSLFAutoShape ব্যবহার করে একটি Rectangle শেপ তৈরি করা হয়েছে এবং তার position এবং size setAnchor() মেথডের মাধ্যমে কনফিগার করা হয়েছে।


সারাংশ

অ্যাপাচি পিওআই (Apache POI) ব্যবহার করে আপনি PowerPoint ফাইলের স্লাইডে বিভিন্ন ধরনের Shapes তৈরি করতে পারেন এবং সেগুলির position এবং size কনফিগার করতে পারেন। TextBox, Rectangle, Oval বা Picture শেপের অবস্থান এবং আকার নির্ধারণ করার জন্য setAnchor() মেথডটি ব্যবহার করা হয়, যা Rectangle(x, y, width, height) আকারে শেপের অবস্থান ও আকার নির্ধারণ করে। Apache POI এর মাধ্যমে PowerPoint ফাইল তৈরি, সম্পাদনা এবং কনটেন্ট ম্যানিপুলেশন খুব সহজ এবং কার্যকরী।

common.content_added_by

Shape ফরম্যাটিং (Fill Color, Border)

143
143

Apache POI লাইব্রেরি ব্যবহার করে আপনি PowerPoint স্লাইডে Shape ফরম্যাটিং করতে পারেন, যেমন Fill Color এবং Border সেট করা। এটি স্লাইডের চেহারা এবং অনুভূতি উন্নত করতে সহায়ক, যেমন বক্স, রেকট্যাঙ্গল, সার্কেল, এবং অন্যান্য গ্রাফিক্যাল উপাদানগুলির ফরম্যাটিং।

এখানে, আমরা দেখব কিভাবে Apache POI ব্যবহার করে PowerPoint স্লাইডে Shape ফরম্যাটিং করা যায়, যেমন Fill Color এবং Border কাস্টমাইজ করা।


Shape ফরম্যাটিং: Fill Color এবং Border সেট করা

PowerPoint স্লাইডে একটি Shape তৈরি করতে এবং তার Fill Color এবং Border কাস্টমাইজ করতে আমরা XSLF API ব্যবহার করি। এই API-এর মাধ্যমে আমরা বিভিন্ন ধরনের শেপ (যেমন রেকট্যাঙ্গল, সার্কেল, লাইন) তৈরি করতে এবং সেগুলোর ফরম্যাটিং করতে পারি।

1. Shape তৈরি এবং Fill Color সেট করা

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি রেকট্যাঙ্গল শেপ তৈরি করা হয়েছে এবং তার ভিতরের ফিল (Fill) রঙ সেট করা হয়েছে।

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFRectangle;
import org.apache.poi.sl.usermodel.Shape;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

public class ShapeFillColorExample {
    public static void main(String[] args) throws IOException {
        // নতুন PowerPoint স্লাইডশো তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // রেকট্যাঙ্গল শেপ তৈরি
        XSLFRectangle rectangle = slide.createShape(XSLFShape.Type.RECTANGLE);
        
        // রেকট্যাঙ্গলের পজিশন এবং আকার নির্ধারণ
        rectangle.setAnchor(new java.awt.Rectangle(100, 100, 300, 200));

        // রেকট্যাঙ্গল ফিল কালার সেট করা
        rectangle.setFillColor(Color.YELLOW); // হলুদ রঙ

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("shape_with_fill.pptx")) {
            ppt.write(out);
        }

        System.out.println("Shape with Fill Color PowerPoint ফাইল সফলভাবে তৈরি হয়েছে!");
    }
}

উদাহরণের ব্যাখ্যা:

  1. XSLFRectangle rectangle = slide.createShape(XSLFShape.Type.RECTANGLE);
    এই লাইনটি একটি রেকট্যাঙ্গল শেপ তৈরি করে।
  2. rectangle.setFillColor(Color.YELLOW);
    রেকট্যাঙ্গলের ফিল কালার হলুদ রঙে সেট করা হয়। আপনি এখানে অন্যান্য রঙও ব্যবহার করতে পারেন যেমন Color.RED, Color.GREEN, Color.BLUE ইত্যাদি।

2. Shape এর Border ফরম্যাটিং

Shape এর Border (আঞ্চলিক রেখা) ফরম্যাটিং করা হয় এর Line বৈশিষ্ট্য ব্যবহার করে। এটি Shape এর চারপাশে একটি সীমানা বা রেখা যোগ করার জন্য ব্যবহৃত হয়।

উদাহরণ: Shape এর Border ফরম্যাটিং

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFRectangle;
import org.apache.poi.sl.usermodel.Shape;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

public class ShapeBorderExample {
    public static void main(String[] args) throws IOException {
        // নতুন PowerPoint স্লাইডশো তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // রেকট্যাঙ্গল শেপ তৈরি
        XSLFRectangle rectangle = slide.createShape(XSLFShape.Type.RECTANGLE);
        
        // রেকট্যাঙ্গলের পজিশন এবং আকার নির্ধারণ
        rectangle.setAnchor(new java.awt.Rectangle(100, 100, 300, 200));

        // রেকট্যাঙ্গলের ফিল কালার সেট করা
        rectangle.setFillColor(Color.YELLOW); // হলুদ রঙ

        // রেকট্যাঙ্গল বর্ডার সেট করা
        rectangle.setLineColor(Color.RED); // লাল রঙের সীমানা
        rectangle.setLineWidth(5); // সীমানার প্রস্থ 5 পিক্সেল

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("shape_with_border.pptx")) {
            ppt.write(out);
        }

        System.out.println("Shape with Border PowerPoint ফাইল সফলভাবে তৈরি হয়েছে!");
    }
}

উদাহরণের ব্যাখ্যা:

  1. rectangle.setLineColor(Color.RED);
    রেকট্যাঙ্গল শেপের বর্ডারের রঙ লাল করা হয়েছে।
  2. rectangle.setLineWidth(5);
    রেকট্যাঙ্গল শেপের বর্ডারের প্রস্থ 5 পিক্সেল নির্ধারণ করা হয়েছে।

3. Shape এর Fill Color এবং Border একসাথে ব্যবহার

আপনি একসাথে Fill Color এবং Border ফরম্যাটিং ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি রেকট্যাঙ্গল শেপ তৈরি করা হয়েছে এবং তার Fill Color হলুদ এবং Border লাল রঙের সাথে ফরম্যাট করা হয়েছে।

উদাহরণ: Shape Fill Color এবং Border একসাথে ব্যবহার

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFRectangle;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

public class ShapeFillBorderExample {
    public static void main(String[] args) throws IOException {
        // নতুন PowerPoint স্লাইডশো তৈরি
        XMLSlideShow ppt = new XMLSlideShow();

        // একটি স্লাইড তৈরি
        XSLFSlide slide = ppt.createSlide();

        // রেকট্যাঙ্গল শেপ তৈরি
        XSLFRectangle rectangle = slide.createShape(XSLFShape.Type.RECTANGLE);

        // রেকট্যাঙ্গলের পজিশন এবং আকার নির্ধারণ
        rectangle.setAnchor(new java.awt.Rectangle(100, 100, 300, 200));

        // ফিল কালার হলুদ এবং বর্ডার লাল রঙে সেট করা
        rectangle.setFillColor(Color.YELLOW); // হলুদ ফিল
        rectangle.setLineColor(Color.RED);    // লাল বর্ডার
        rectangle.setLineWidth(5);            // 5 পিক্সেল প্রস্থ

        // PowerPoint ফাইল সেভ করা
        try (FileOutputStream out = new FileOutputStream("shape_with_fill_and_border.pptx")) {
            ppt.write(out);
        }

        System.out.println("Shape with Fill Color and Border PowerPoint ফাইল সফলভাবে তৈরি হয়েছে!");
    }
}

এখানে, আপনি একসাথে Fill Color (হলুদ) এবং Border (লাল) সেট করেছেন।


সারাংশ

Apache POI ব্যবহার করে PowerPoint স্লাইডে Shape ফরম্যাটিং করা সহজ এবং দ্রুত। আপনি Fill Color এবং Border কাস্টমাইজ করে স্লাইডের গ্রাফিক্সকে আকর্ষণীয় এবং পেশাদারীভাবে উপস্থাপন করতে পারবেন। XSLF API এর মাধ্যমে আপনি বিভিন্ন ধরনের Shape তৈরি করতে পারেন, যেমন Rectangle, Circle, Line, এবং এগুলোর কাস্টম ফরম্যাটিং করতে পারবেন।

এটি ব্যবসায়িক রিপোর্ট, প্রেজেন্টেশন, এবং অন্যান্য গ্রাফিক্যাল কনটেন্ট তৈরির জন্য অত্যন্ত কার্যকরী।


common.content_added_by

Grouping এবং Ungrouping Shapes

168
168

অ্যাপাচি পিওআই (Apache POI) একটি ওপেন সোর্স লাইব্রেরি যা Microsoft Office ফাইল ফরম্যাট পড়তে এবং লিখতে ব্যবহৃত হয়, বিশেষ করে Excel, Word, এবং PowerPoint ফাইল ফরম্যাটের জন্য। PowerPoint (PPTX) ফাইলের সাথে কাজ করার সময় Grouping এবং Ungrouping Shapes একটি সাধারণ কার্যকলাপ হতে পারে, যেখানে আপনি একাধিক শেপ (যেমন, টেক্সট বক্স, চিত্র, আউটলাইন, ইত্যাদি) একসাথে গ্রুপ করতে বা গ্রুপ ভেঙে দিতে পারেন।

Grouping এবং Ungrouping Shapes কি?

  • Grouping Shapes: একাধিক শেপকে একত্রিত করে একটি গ্রুপ হিসেবে পরিচালনা করা। এতে একাধিক শেপ একসাথে সরানো বা মাপ পরিবর্তন করা সহজ হয়।
  • Ungrouping Shapes: একটি গ্রুপ করা শেপকে আলাদা করা, অর্থাৎ শেপগুলি আবার স্বাধীনভাবে পরিচালনা করা।

Apache POI এর মাধ্যমে PowerPoint (PPTX) ফাইলের শেপগুলি গ্রুপ এবং আনগ্রুপ করতে কিছু কার্যকরী ফিচার সরবরাহ করা হয়।


Grouping Shapes in PowerPoint using Apache POI

Grouping করার জন্য পদ্ধতি:

  1. PowerPoint ফাইল লোড করুন।
  2. শেপগুলি নির্বাচন করুন যেগুলো আপনি গ্রুপ করতে চান।
  3. গ্রুপিং করতে একটি নতুন শেপ তৈরি করুন যা গ্রুপের শেপগুলিকে ধারণ করবে।
  4. ফাইল সংরক্ষণ করুন।

উদাহরণ:

Apache POI এর মাধ্যমে গ্রুপিং করা সোজা নয় কারণ এটি বিশেষভাবে গ্রুপিং বা আর্কিটেকচারের জন্য ডিজাইন করা হয়নি। তবে আপনি সঠিকভাবে শেপগুলি লেআউট করে এবং তাদেরকে একত্রে ম্যানিপুলেট করতে পারেন। নিম্নলিখিত কোডটি গ্রুপিংয়ের জন্য একটি সাধারণ ধারণা প্রদান করে:

import org.apache.poi.xslf.usermodel.*;
import org.apache.poi.xslf.usermodel.XSLFGroupShape;
import org.apache.poi.xslf.usermodel.XSLFShape;
import java.io.*;

public class GroupShapesExample {
    public static void main(String[] args) throws IOException {
        // একটি নতুন PowerPoint তৈরি করা
        XMLSlideShow ppt = new XMLSlideShow();

        // স্লাইড তৈরি করা
        XSLFSlide slide = ppt.createSlide();

        // দুটি শেপ তৈরি করা
        XSLFAutoShape shape1 = slide.createAutoShape();
        shape1.setShapeType(ShapeType.RECTANGLE);
        shape1.setAnchor(new java.awt.Rectangle(50, 50, 200, 100));
        
        XSLFAutoShape shape2 = slide.createAutoShape();
        shape2.setShapeType(ShapeType.ELLIPSE);
        shape2.setAnchor(new java.awt.Rectangle(100, 100, 200, 100));

        // দুটি শেপ একত্রিত করা (গ্রুপ করা)
        XSLFGroupShape groupShape = slide.createGroupShape();
        groupShape.addShape(shape1);
        groupShape.addShape(shape2);

        // ফাইল সংরক্ষণ করা
        try (FileOutputStream out = new FileOutputStream("grouped_shapes.pptx")) {
            ppt.write(out);
        }

        System.out.println("PowerPoint ফাইল সফলভাবে গ্রুপ করা শেপ সহ তৈরি হয়েছে!");
    }
}

এই কোডে:

  • দুটি শেপ (shape1 এবং shape2) তৈরি করা হয়েছে এবং তাদের গ্রুপ করা হয়েছে XSLFGroupShape এর মাধ্যমে।
  • গ্রুপ করা শেপটিকে একটি নতুন স্লাইডে যোগ করা হয়েছে এবং শেষে সেই ফাইলটি grouped_shapes.pptx হিসেবে সংরক্ষণ করা হয়েছে।

Ungrouping Shapes in PowerPoint using Apache POI

Ungrouping করার জন্য পদ্ধতি:

  1. PowerPoint ফাইল লোড করুন।
  2. গ্রুপ করা শেপ খুঁজে বের করুন।
  3. গ্রুপটি আলাদা করুন (এটি সরাসরি POI-তে করা সম্ভব নয়, তবে আপনি শেপগুলোকে আলাদা করে রাখতে পারবেন)।
  4. ফাইল সংরক্ষণ করুন।

উদাহরণ:

Apache POI সরাসরি Ungrouping এর জন্য সমর্থন প্রদান করে না। তবে, আপনি গ্রুপ শেপ থেকে শেপগুলো বের করে নিয়ে এবং আলাদাভাবে ব্যবহৃত শেপ হিসাবে সেট করতে পারেন। নিচে এর একটি উদাহরণ দেওয়া হয়েছে:

import org.apache.poi.xslf.usermodel.*;
import java.io.*;

public class UngroupShapesExample {
    public static void main(String[] args) throws IOException {
        // PowerPoint ফাইল লোড করা
        XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("grouped_shapes.pptx"));

        // প্রথম স্লাইডের শেপগুলো সংগ্রহ করা
        XSLFSlide slide = ppt.getSlides().get(0);
        XSLFGroupShape groupShape = (XSLFGroupShape) slide.getShapes().get(0);

        // গ্রুপ থেকে আলাদা শেপ বের করা
        for (XSLFShape shape : groupShape.getShapes()) {
            // আলাদা শেপ হিসাবে প্রসেস বা কাজ করা
            System.out.println("Shape: " + shape.getShapeType());
        }

        // ফাইল সংরক্ষণ করা
        try (FileOutputStream out = new FileOutputStream("ungrouped_shapes.pptx")) {
            ppt.write(out);
        }

        System.out.println("PowerPoint ফাইল সফলভাবে আনগ্রুপ করা শেপ সহ তৈরি হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • এখানে, groupShape.getShapes() থেকে প্রতিটি শেপকে আলাদা করা হচ্ছে এবং আপনি সেগুলির উপর আলাদা কাজ করতে পারবেন।
  • গ্রুপ থেকে শেপগুলোকে বের করার পর, আলাদা PowerPoint ফাইল ungrouped_shapes.pptx নামে সংরক্ষণ করা হয়েছে।

সারাংশ

Apache POI ব্যবহার করে PowerPoint ফাইলের Shapes গ্রুপিং এবং আনগ্রুপিং করা সরাসরি সমর্থনিত নয়, তবে আপনি শেপগুলোকে XSLFGroupShape ব্যবহার করে গ্রুপ করতে পারেন এবং পরে সেই গ্রুপ থেকে শেপগুলো বের করতে পারেন। Grouping এবং Ungrouping একসাথে কাজ করার মাধ্যমে, আপনি PowerPoint ফাইলের কন্টেন্ট ম্যানিপুলেট এবং কাস্টমাইজ করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion